import axios from "axios";
import vue from "vue";
import router from "./router/index";

const http = axios.create({
  baseURL: "http://localhost:3000/admin/api"
});

http.interceptors.request.use(
  function(config) {
    // # 1.1  任何请求都会经过这一步   在发送请求之前做些什么
    if (sessionStorage.token) {
      config.headers.token = "Bearer " + sessionStorage.token;
    }

    // # 1.2  这里一定要return   否则配置不成功
    return config;
  },
  function(err) {
    //  #1.3 对请求错误做点什么
    // console.log(err)
    return Promise.reject(err);
  }
);

http.interceptors.response.use(
  function(res) {
    return res;
  },
  function(error) {
    if (error.response.data.message) {
      vue.prototype.$message({
        type: "error",
        message: error.response.data.message
      });

      // console.log(error.response);
      if (error.response.status === 401) {
        router.push("/login");
      }
    }

    return Promise.reject(error);
  }
);

export default http;
